VictoriaMetrics入门与实战 您所在的位置:网站首页 victoria falls怎么读 VictoriaMetrics入门与实战

VictoriaMetrics入门与实战

2023-10-22 06:13| 来源: 网络整理| 查看: 265

01

简介

VictoriaMetrics,是一个快速高效、经济并且可扩展的监控解决方案和时序数据库。

谈到VictoriaMetrics就必须要提到Prometheus,VictoriaMetrics是一个新兴的监控解决方案。它借助Prometheus强大的exporter生态、成熟的规范、服务发现等优点等,融入到Prometheus生态中。VictoriaMetrics官网很多兼容Prometheus参数解释都是直接跳转到Prometheus官网。

VictoriaMetrics可以作为Prometheus的长期远程存储方案,当然VictoriaMetrics也可以完全取代Prometheus,因为VictoriaMetrics基本支持Prometheus配置文件、PromQL、各类API、数据格式等等。

作为一款新兴TSDB,参考DB-Engines的TSDB排行,最近两年VictoriaMetrics热度很高:

f0937ed29d40f64c3737bd039577c143.png注意:下面无特殊声明统一把VictoriaMetrics简写成VM。

1.1 VM优点

远程存储:可作为单一或多个Prometheus的远程存储

安装简单:单节点架构一条命令就可以部署完毕(集群方式稍微复杂一些,但也很好理解)

兼容性:PromQL兼容和增强的MetricsQL

Grafana兼容:VM可替换Grafana的Prometheus数据源(经测试,线上数据源直接替换后100%兼容)

低内存:更低的内存占用,官方对比Prometheus,可以释放7倍左右内存空间(线上对比大概4倍)

高压缩比:提供存储数据高压缩,官方说可以比Prometheus减少7倍的存储空间(线上对比大概是4~5倍)

高性能:查询性能比Prometheus更快

支持水平扩容&HA:基于VM集群版实现

支持多租户:主要针对集群版

1.2 VM缺点

图形化做的不好,虽然有vmui,但功能很少

告警功能需要单独配置vmalert,而且vmalert只有api管理和查看,暂时没用图形界面

没有类似Prometheus的WAL日志,突然故障可能会丢失部分数据

1.3 VM分类

VM分为,单节点(single-node)版和集群(cluster)版,两套方案,根据业务需求选择即可。

单节点版:直接运行一个二进制文件,既可以运行,官方建议采集数据点(data points)低于100w/s,推荐VM单节点版,简单好维护,但不支持告警。

集群版:支持数据水平拆分,把功能拆分为vmstorage、 vminsert、vmselect,如果要替换Prometheus,还需要vmagent、vmalert。

1.4 官方网址

官网:https://victoriametrics.com

官方文档:https://docs.victoriametrics.com

GitHub:https://github.com/VictoriaMetrics/VictoriaMetrics

1.5 部分名词解释

1)关于样本:

在时间序列(time-series)中的每一个点称为一个样本(sample),样本(sample)由以下三部分组成:

指标(metric):指标名和一组描述当前样本特征的labelsets唯一标识

时间戳(timestamp):一个精确的时间戳,一般由采集时间决定(VM为秒,Prometheus为毫秒)

样本值(value):当前样本的值

2)关于target:

每一个监控目标称为一个target,如:单个node-exporter、mysqld-exporter等等。

02

案例

下面列出部分官方案例,主要针对写和查,以供参考。

使用方

VM版本

写入数据点量

总数据量

99%查询耗时

Synthesio

单节点版

55万/秒

1.25万亿

147ms

Wix.com

单节点版

110万/秒

8.5万亿

1seconds

German

单节点版

2.4万/秒

1600亿

6.5ms

Wedos.com

集群版

17万/秒

未提供

50ms

综上,VM单节点版,和官方说的每秒抓取100w左右的数据点(data point也可以简单理解为1个样本)问题不大,如果单个target的样本数是1000个左右,那每秒VM就可以抓取100w/1000,预估一下,VM单节点版可以实现,大概1000个target/s 的抓取量。可根据自己的业务量,简单评估一下VM单节点是否适合自己的业务。

另外,DBA们比较熟悉的PMM(Percona Monitoring and Management )监控套件,在2.12版本开始也用VictoriaMetrics替换掉了Prometheus(https://www.percona.com/blog/2020/12/16/percona-monitoring-and-management-migration-from-prometheus-to-victoriametrics-faq/)。

03

VM单节点版

下面模拟2个node-exporter,被Prometheus采集数据,然后Prometheus把数据写到VM远程存储。通过Grafana分别对2种数据源(Prometheus、VictoriaMetrics)进行展示,验证VM的兼容性。最终使用VM完全替换Prometheus,可以达到架构简单、更低的资源占用。

59765708e34ce96a116ece518d0f150d.png各服务部署如下表:

服务名称

IP

PORT

node-exporter

192.168.1.100

192.168.1.101

9100

Prometheus

192.168.1.102

9090

VM单机版

8428

Grafana

3000

说明:

用VM单机版,可以替换Prometheus,前提是没有用到告警功能,否则还要引入vmalert。下面只是示例,为了好理解整体流程,大多数参数都用的默认值启动,实际线上建议修改部分默认参数。Grafana的Dashboard选了一个官网用的比较多,展示类型相对丰富的,主要是为了验证VM兼容性。

3.1 node-exporter配置

# 在2台主机上分别执行如下命令,来安装node-exporter cd /usr/local wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz tar -xvzf node_exporter-1.2.2.linux-amd64.tar.gz && mv node_exporter-1.2.2.linux-amd64 node_exporter && cd node_exporter nohup ./node_exporter &

3.2 Prometheus配置

# 在192.168.1.102主机安装Prometheus cd /usr/local wget https://github.com/prometheus/prometheus/releases/download/v2.30.0/prometheus-2.30.0.linux-amd64.tar.gz tar -xvzf prometheus-2.30.0.linux-amd64.tar.gz && mv prometheus-2.30.0.linux-amd64 prometheus && cd prometheus cat > prometheus.yml > /usr/local/prometheus/prometheus.yml config.yaml


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有